import java.util.ArrayList;
import java.util.Scanner;

public class demo03 {
//    问题描述：
//    任何一个正整数都可以用2进制表示，例如：137的2进制表示为10001001。
//    将这种2进制表示写成2的次幂的和的形式，令次幂高的排在前面，可得到如下表达式：137=2^7+2^3+2^0
//    现在约定幂次用括号来表示，即a^b表示为a（b）
//    此时，137可表示为：2（7）+2（3）+2（0）
//    进一步：7=2^2+2+2^0  （2^1用2表示），3=2+2^0
//    所以最后137可表示为：2（2（2）+2+2（0））+2（2+2（0））+2（0）
//    又如：1315=2^10+2^8+2^5+2+1
//    所以1315最后可表示为：2（2（2+2（0））+2）+2（2（2+2（0）））+2（2（2）+2（0））+2+2（0）
//    输入：正整数（1<=n<=20000）
//    输出：符合约定的n的0，2表示（在表示中不能有空格）
//    样例输入1：137
//    样例输出1：2(2(2)+2+2(0))+2(2+2(0))+2(0)
//    样例输入2：1315
//    样例输出2：2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)

    public static int func(int num){
        if(num<=4){
            switch(num){
                case 1:
                    System.out.print("2(0)");
                    break;
                case 2:
                    System.out.print("2");
                    break;
                case 3:
                    System.out.print("2+2(0)");
                    break;
                case 4:
                    System.out.print("2(2)");
                    break;
                default:
                    break;
            }
        }else{
            int i=0;
            for (; Math.pow(2,i) <= num; i++);
            System.out.print("2(");
            func(i-1);
            System.out.print(")");
            if(num!=Math.pow(2,i-1))
                System.out.print("+");
            func(num-(int)Math.pow(2,i-1));
        }
        return 0;
    }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int num=sc.nextInt();
        func(num);
    }
}





